package cn.qingyun.gis.modules.scenes.entity;

import cn.qingyun.gis.modules.handle.BusinessListToJsonbTypeHandler;
import cn.qingyun.gis.modules.handle.JsonbToEntityHandler;
import cn.qingyun.gis.modules.handle.KwRelativesListToJsonbTypeHandler;
import cn.qingyun.gis.modules.scenes.response.BusContentDto;
import cn.qingyun.gis.modules.scenes.response.KwRelativesDto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description: 表实体对象
 * @Version: V1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName(value = "poi_scenario_proofread", autoResultMap = true)
@ApiModel(value = "PoiStreetProofread对象", description = "PoiStreetProofread对象")
public class PoiScenarioProofread implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 唯一标识
     */
    @ApiModelProperty(value = "唯一标识")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * poi_scenario主键id
     */
    @ApiModelProperty(value = "poi_scenario主键id")
    @Excel(name = "poi_scenario主键id", width = 15)
    private String poiScenarioId;

    /**
     * poi地址
     */
    @ApiModelProperty(value = "poi地址")
    private String kwPoiAddress;

    /**
     * poi名称
     */
    @ApiModelProperty(value = "poi名称")
    private String kwPoiName;

    /**
     * 场景类型
     */
    @ApiModelProperty(value = "场景类型")
    private String kwType;

    /**
     * 老板姓名
     */
    @ApiModelProperty(value = "老板姓名")
    private String kwBossName;

    /**
     * 老板电话以及手机号码
     */
    @ApiModelProperty(value = "老板电话以及手机号码")
    private String kwBossTel;
    /**
     * 老板月均消费
     */
    @ApiModelProperty(value = "老板月均消费")
    private String kwBossConsume;

    /**
     * 所属运营商
     */
    @ApiModelProperty(value = "所属运营商")
    private Integer belongOperator;

    /**
     * (优惠)到期时间
     */
    @ApiModelProperty(value = "(优惠)到期时间")
    private String expireDate;

    @ApiModelProperty(value = "商机内容")
    private String businessContent;

    @ApiModelProperty(value = "行政地市")
    private String kwCity;

    @ApiModelProperty(value = "行政区县")
    private String kwDis;

    @ApiModelProperty(value = "行政乡镇")
    private String kwTown;

    @ApiModelProperty(value = "行政街道")
    private String kwRoad;

    @ApiModelProperty(value = "行政道路门牌号")
    private String kwRoadNo;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "勘误工号")
    private String kwPhone;

    @ApiModelProperty(value = "勘误人真实姓名")
    private String kwName;

    @ApiModelProperty(value = "商机内容列表（录音识别）")
    @TableField(value = "business_content_list", typeHandler = BusinessListToJsonbTypeHandler.class)
    private List<BusContentDto> businessContentList;

    /**
     * 亲属信息
     */
    @ApiModelProperty(value = "亲属信息")
    @TableField(value = "kw_relatives_info", typeHandler = KwRelativesListToJsonbTypeHandler.class)
    private List<KwRelativesDto> kwRelativesInfo;

    @ApiModelProperty(value = "勘误时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date kwTime;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date kwTimeStart;

    @ApiModelProperty(value = "角色名称")
    private String roleName;

    @ApiModelProperty(value = "渠道编码")
    private String channelCode;
    /**
     * 0正常营业 1装修中 2已倒闭
     */
    @ApiModelProperty(value = "经营状态")
    private Integer businessState;

    @ApiModelProperty(value = "门牌号---路")
    private String houseRoad;

    @ApiModelProperty(value = "门牌号---号")
    private String houseNumber;

    @ApiModelProperty(value = "店主关联运营商")
    private Integer dzBelongOperator;
    /**
     * 网络是否覆盖 1是 0否
     */
    @ApiModelProperty(value = "网络是否覆盖")
    private Integer isZoneCode;
    /**
     * 网络是否覆盖是否准确 1是 0否
     */
    @ApiModelProperty(value = "网络是否覆盖是否准确")
    private Integer isZoneCodeAccurate;
    /**
     *是否有意向 1是 0否
     */
    @ApiModelProperty(value = "是否有意向")
    private Integer isIntention;

    @ApiModelProperty(value = "意向时间")
    private String intentionDate;

    @TableField(typeHandler = JsonbToEntityHandler.class)
    @ApiModelProperty(value = "设备信息")
    private KdDeviceInfo kdDeviceInfo;

    @TableField(typeHandler = JsonbToEntityHandler.class)
    @ApiModelProperty(value = "平台信息实体")
    private PlatformInfo platformInfo;

    @TableField(typeHandler = JsonbToEntityHandler.class)
    @ApiModelProperty(value = "备注")
    private InterviewRemark interviewRemark;

    @ApiModelProperty(value = "建筑信息")
    @TableField(typeHandler = JsonbToEntityHandler.class)
    private BuildInfo buildInfo;

    @ApiModelProperty(value = "是否是金牌建筑")
    private Integer isGoldBuild;

    @ApiModelProperty(value = "建筑结构")
    @TableField(typeHandler = JsonbToEntityHandler.class)
    private BuildStructure buildStructure;

    @ApiModelProperty(value = "联系信息")
    @TableField(typeHandler = JsonbToEntityHandler.class)
    private RelatedInfo relatedInfo;

    @ApiModelProperty(value = "商机（意向业务）")
    @TableField(typeHandler = JsonbToEntityHandler.class)
    private IntentionInfo intentionInfo;

    @ApiModelProperty(value = "归属标志")
    private Integer belongFlag;

    @ApiModelProperty(value = "存量泛渠道")
    @TableField(typeHandler = JsonbToEntityHandler.class)
    private PanChannelInfo panChannelInfo;

    @ApiModelProperty(value = "最新记录标志")
    private Integer lastUpdated;

    @ApiModelProperty(value = "地市码")
    private String regionCityCode;
}
